<?php
class Cuenta extends CuentaDAO {

    public function insertar($data) {
        try {
            $revisor=$data['nombre']." ".$data['apellido'];

            for($m=0;$m<strlen($data['apellido']);$m++) {
                if($data['apellido'][$m]!=" ") {
                    $cadena .= $data['apellido'][$m];
                }else {
                    break;
                }
            }

            $usuario = strtolower("r".$data['nombre'][0].$cadena);
            $password = $usuario;

            $objetoTO = new CuentaTO;
            $objetoTO->setUsuario($usuario);
            $objetoTO = $this->loadByUsuario($objetoTO);

            if($objetoTO->getIdCuenta()!=null) {
                $_SESSION['msn_operacion'] = "<div id='msn_operacion_false'><div style='padding-left:30px;'>Este revisor ya esta registrado en el sistema.</div></div>";
                return "Este revisor ya esta registrado en el sistema.";
            }else {
                $objetoTO = new CuentaTO;
                $objetoTO->setUsuario($usuario);
                $objetoTO->setPassword($password);
                $objetoTO->setEstado("1");
                $objetoTO->setIdPerfil("3");
                $this->insert($objetoTO);
                return "";
            }


        }
        catch(Exception $e) {
            throw $e;
        }
    }

    public function obtenerCuenta($objCuentaTO) {
        try{
            return $this->load($objCuentaTO);
        }catch (Exception $e){
            throw $e;
        }
    }

    public function obtenerIdCuenta() {
        try {
            return $this->findLastCuenta();
        }
        catch(Exception $e) {
            throw $e;
        }
    }

    public function login($data) {
        try {
            $this->validarFormularioLogin($data['usuario'], $data['password']);
            return $this->autenticar($data['usuario'], $data['password']);
        }
        catch(Exception $e) {
            throw $e;
        }
    }

    private function validarFormularioLogin($usuario, $password) {
        $errores = array();
        $objFormValidator = new FormValidator;
        $objFormValidator->validateEmpty($usuario, "<div id='msn_operacion_false'><div style='padding-left:30px;'>No ha ingresado su usuario.</div></div>");
        $objFormValidator->validateEmpty($password, "<div id='msn_operacion_false'><div style='padding-left:30px;'>No ha ingresado su password.</div></div>");
        if($objFormValidator->checkErrors()) {
            $errores = $objFormValidator->getErrors();
            throw new Exception($errores[0]);
        }
        else {
            return TRUE;
        }
    }

    public function eliminarCuenta($id_cuenta){
        try{
            $this->delete($id_cuenta);
            return "Actualización realizada";
        }catch (Exception $e){
            throw $e;
        }
    }
}
?>
